// Copyright (c) 2024, Cogent Core. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package fileinfo

import "cogentcore.org/core/icons"

var Icons = map[Known]icons.Icon{
	Unknown:   icons.QuestionMark,
	Any:       icons.QuestionMark,
	AnyKnown:  icons.File,
	AnyFolder: icons.Folder,

	AnyArchive: icons.Archive,
	Multipart:  icons.Mail,
	Tar:        icons.Archive,
	Zip:        icons.Archive,
	GZip:       icons.Archive,
	SevenZ:     icons.Archive,
	Xz:         icons.Archive,
	BZip:       icons.Archive,
	Dmg:        icons.Archive,
	Shar:       icons.Archive,

	AnyBackup: icons.Backup,
	Trash:     icons.Delete,

	AnyCode:     icons.Code,
	Ada:         icons.Code,
	Bash:        icons.Terminal,
	Cosh:        icons.Terminal,
	Csh:         icons.Terminal,
	C:           icons.Code,
	CSharp:      icons.Code,
	D:           icons.Code,
	Diff:        icons.Difference,
	Eiffel:      icons.Code,
	Erlang:      icons.Code,
	Forth:       icons.Code,
	Fortran:     icons.Calculate,
	FSharp:      icons.Code,
	Go:          icons.Go,
	Haskell:     icons.Code,
	Java:        icons.Coffee,
	JavaScript:  icons.Javascript,
	Lisp:        icons.Code,
	Lua:         icons.Code,
	Makefile:    icons.Makefile,
	Mathematica: icons.Calculate,
	Matlab:      icons.Calculate,
	ObjC:        icons.Code,
	OCaml:       icons.Code,
	Pascal:      icons.Code,
	Perl:        icons.Code,
	Php:         icons.Code,
	Prolog:      icons.Code,
	Python:      icons.Code,
	R:           icons.Calculate,
	Ruby:        icons.Code,
	Rust:        icons.Code,
	Scala:       icons.Code,
	Tcl:         icons.Code,

	AnyDoc:  icons.Document,
	BibTeX:  icons.Latex,
	TeX:     icons.Latex,
	Texinfo: icons.Latex,
	Troff:   icons.Document,

	Html:         icons.Html,
	Css:          icons.Css,
	Markdown:     icons.FileMarkdown,
	Rtf:          icons.Document,
	MSWord:       icons.Document,
	OpenText:     icons.Document,
	OpenPres:     icons.Document,
	MSPowerpoint: icons.PresentToAll,

	EBook: icons.Book,
	EPub:  icons.Book,

	AnySheet:  icons.BorderAll,
	MSExcel:   icons.BorderAll,
	OpenSheet: icons.BorderAll,

	AnyData:  icons.Dataset,
	Csv:      icons.Csv,
	Json:     icons.Json,
	Xml:      icons.Code,
	Protobuf: icons.Memory,
	Ini:      icons.Code,
	Tsv:      icons.Tsv,
	Uri:      icons.Link,
	Color:    icons.Colors,
	Yaml:     icons.Code,
	Toml:     icons.Toml,

	AnyText:   icons.TextSnippet,
	PlainText: icons.TextSnippet,
	ICal:      icons.CalendarMonth,
	VCal:      icons.CalendarMonth,
	VCard:     icons.ContactPage,

	AnyImage:   icons.Image,
	Pdf:        icons.PictureAsPdf,
	Postscript: icons.Image,
	Gimp:       icons.Image,
	GraphVis:   icons.Schema,
	Gif:        icons.Image,
	Jpeg:       icons.Image,
	Png:        icons.Image,
	Svg:        icons.Shapes,
	Tiff:       icons.Image,
	Pnm:        icons.Image,
	Pbm:        icons.Image,
	Pgm:        icons.Image,
	Ppm:        icons.Image,
	Xbm:        icons.Image,
	Xpm:        icons.Image,
	Bmp:        icons.Image,
	Heic:       icons.Image,
	Heif:       icons.Image,

	AnyModel: icons.Shapes,
	Vrml:     icons.Shapes,
	X3d:      icons.Shapes,
	Obj:      icons.Shapes,

	AnyAudio: icons.LibraryMusic,
	Aac:      icons.LibraryMusic,
	Flac:     icons.LibraryMusic,
	Mp3:      icons.LibraryMusic,
	Ogg:      icons.LibraryMusic,
	Midi:     icons.LibraryMusic,
	Wav:      icons.LibraryMusic,

	AnyVideo: icons.Videocam,
	Mpeg:     icons.Videocam,
	Mp4:      icons.Videocam,
	Mov:      icons.Videocam,
	Ogv:      icons.Videocam,
	Wmv:      icons.Videocam,
	Avi:      icons.Videocam,

	AnyFont:     icons.FontDownload,
	TrueType:    icons.FontDownload,
	WebOpenFont: icons.FontDownload,

	AnyExe: icons.SmartDisplay,

	AnyBin: icons.DeveloperBoard,
}
